使用AutoLayout分為兩種方式
使用Writing Code的方式就會使用到NSLayoutConstraint
AutoResize關閉
view.translatesAutoresizingMaskIntoConstraints = false
使用方式
A.width = B.width * 0.8 + 20
屬性 = 屬性 * 倍數 + 常數
@MainActor class NSLayoutConstraint : NSObject
啟動NSLayoutConstraints
NSLayoutConstraints(items: 被限制的物件 ,
attribute: 對齊的位置(.top),
toItem: 參考物,
attribute: 對齊的位置(.top),
multiplier: 使用方法中的倍數,
constant: 使用方法中的常數,
).isActive = true
attribute:
// 對齊某邊
.leading/.trailing/.top/.bottom
// x,y置中的位置
.centerX/.centerY
// 設定width,height
attribute:.width/.height
attribute:.notAnAttribute
// 單個Constraint成立
.isActive = true
// 多筆Constraint生效
let leadingConstraint = NSLayoutConstraint(....)
or
let constraints = [ NSLayoutConstraint們]
NSLayoutConstraint.activate([leadingConstraint])
or
NSLayoutConstraint.activate(constraints)
Anchor
拉Layout對齊某邊
VC1.leadingAnchor.constraint(equalto:VC2.leadingAnchor,multiplier:1 ,constant:0).isActive = true
x,y置中位置
VC1.centerXAnchor.constraint(equalTo:VC2.centerXAnchor,mutipler: 1, constant:0).isActive = true
設定width、height值
VC1.widthAnchor.constraint(equalToConstant:20).isActive = true
let heightConstraint = VC1.heightAnchor.constraint(equalToConstant:20)
// 修改
heightConstraint.constant = 100
參考網址:
Auto Layout in Swift: Writing constraints programmatically